using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
using SILAS.Entidades;

namespace SILAS.DAO.Mapping
{
    public class SectorMap : EntityTypeConfiguration<Sector>
    {
        public SectorMap()
        {
            // Primary Key
            this.HasKey(t => t.Id);

            // Properties
            this.Property(t => t.IdUbigeo)
                .HasMaxLength(50);

            // Table & Column Mappings
            this.ToTable("Sector");
            this.Property(t => t.Id).HasColumnName("IdSector");
            this.Property(t => t.NroFamilias).HasColumnName("NroFamilias");
            this.Property(t => t.EstaSalud).HasColumnName("EstaSalud");
            this.Property(t => t.EnergElect).HasColumnName("EnergElect");
            this.Property(t => t.NroFamAcceso).HasColumnName("NroFamAcceso");
            this.Property(t => t.IdUbigeo).HasColumnName("IdUbigeo");
            this.Property(t => t.IdUbicacion).HasColumnName("IdUbicacion");
            this.Property(t => t.IdCategoria).HasColumnName("IdCategoria");

            // Relationships
            this.HasOptional(t => t.Categoria)
                .WithMany(t => t.Sectors)
                .HasForeignKey(d => d.IdCategoria);
            this.HasOptional(t => t.Ubicacion)
                .WithMany(t => t.Sectors)
                .HasForeignKey(d => d.IdUbicacion);
            this.HasOptional(t => t.Ubigeo)
                .WithMany(t => t.Sectors)
                .HasForeignKey(d => d.IdUbigeo);

        }
    }
}
